<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.4"/>
<title>StrangeIoC: strange.extensions.pool.api.IPoolable Interface Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">StrangeIoC
   &#160;<span id="projectnumber">0.6.0</span>
   </div>
   <div id="projectbrief">The IoC/Binding Framework for Unity3D and C#</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.4 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Events</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacestrange.html">strange</a></li><li class="navelem"><a class="el" href="namespacestrange_1_1extensions.html">extensions</a></li><li class="navelem"><a class="el" href="namespacestrange_1_1extensions_1_1pool.html">pool</a></li><li class="navelem"><a class="el" href="namespacestrange_1_1extensions_1_1pool_1_1api.html">api</a></li><li class="navelem"><a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.html">IPoolable</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">strange.extensions.pool.api.IPoolable Interface Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Interface for items that belong to a Pool.  
 <a href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for strange.extensions.pool.api.IPoolable:</div>
<div class="dyncontent">
 <div class="center">
  <img src="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.png" usemap="#strange.extensions.pool.api.IPoolable_map" alt=""/>
  <map id="strange.extensions.pool.api.IPoolable_map" name="strange.extensions.pool.api.IPoolable_map">
<area href="classstrange_1_1extensions_1_1command_1_1impl_1_1_command.html" title="Commands are where you place your business logic. " alt="strange.extensions.command.impl.Command" shape="rect" coords="181,56,534,80"/>
<area href="classstrange_1_1extensions_1_1dispatcher_1_1eventdispatcher_1_1impl_1_1_tm_event.html" title="The standard Event object for IEventDispatcher. " alt="strange.extensions.dispatcher.eventdispatcher.impl.TmEvent" shape="rect" coords="544,56,897,80"/>
<area href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html" alt="strange.extensions.pool.impl.Pool" shape="rect" coords="907,56,1260,80"/>
<area href="classstrange_1_1extensions_1_1command_1_1impl_1_1_event_command.html" title="Subclass of Command with injections for dispatcher and events. " alt="strange.extensions.command.impl.EventCommand" shape="rect" coords="0,112,353,136"/>
<area href="classstrange_1_1extensions_1_1sequencer_1_1impl_1_1_sequence_command.html" alt="strange.extensions.sequencer.impl.SequenceCommand" shape="rect" coords="363,112,716,136"/>
<area href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool_3_01_t_01_4.html" alt="strange.extensions.pool.impl.Pool&lt; T &gt;" shape="rect" coords="907,112,1260,136"/>
<area href="classstrange_1_1extensions_1_1sequencer_1_1impl_1_1_event_sequence_command.html" alt="strange.extensions.sequencer.impl.EventSequenceCommand" shape="rect" coords="363,168,716,192"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3eb6437f37f1e87b92c55a32689a0ef5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.html#a3eb6437f37f1e87b92c55a32689a0ef5">Restore</a> ()</td></tr>
<tr class="memdesc:a3eb6437f37f1e87b92c55a32689a0ef5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clean up this instance for reuse.  <a href="#a3eb6437f37f1e87b92c55a32689a0ef5">More...</a><br/></td></tr>
<tr class="separator:a3eb6437f37f1e87b92c55a32689a0ef5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad51f2499e20163c58147a886e5fd5692"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.html#ad51f2499e20163c58147a886e5fd5692">Retain</a> ()</td></tr>
<tr class="memdesc:ad51f2499e20163c58147a886e5fd5692"><td class="mdescLeft">&#160;</td><td class="mdescRight">Keep this instance from being returned to the pool  <a href="#ad51f2499e20163c58147a886e5fd5692">More...</a><br/></td></tr>
<tr class="separator:ad51f2499e20163c58147a886e5fd5692"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdea864987f51cfc9d83e9158dfcaa33"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.html#afdea864987f51cfc9d83e9158dfcaa33">Release</a> ()</td></tr>
<tr class="memdesc:afdea864987f51cfc9d83e9158dfcaa33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release this instance back to the pool.  <a href="#afdea864987f51cfc9d83e9158dfcaa33">More...</a><br/></td></tr>
<tr class="separator:afdea864987f51cfc9d83e9158dfcaa33"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:a5765129c59b95f61b7ffcd707e1296d2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.html#a5765129c59b95f61b7ffcd707e1296d2">retain</a><code> [get]</code></td></tr>
<tr class="memdesc:a5765129c59b95f61b7ffcd707e1296d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is this instance retained?  <a href="#a5765129c59b95f61b7ffcd707e1296d2">More...</a><br/></td></tr>
<tr class="separator:a5765129c59b95f61b7ffcd707e1296d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Interface for items that belong to a Pool. </p>
<p>Instances that belong to a Pool usually need to be cleaned up for later reuse. This is both an aspect of careful instance wrangling and of memory management, since you want to release any memory references possibly attached to the poolable items. If your instances implement <a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.html" title="Interface for items that belong to a Pool. ">IPoolable</a>, place all cleanup code inside <a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.html#a3eb6437f37f1e87b92c55a32689a0ef5" title="Clean up this instance for reuse. ">Restore()</a>, and the cleanup will occur automatically when the instance is returned to the Pool.</p>
<p>If you cannot or do not wish to implement <a class="el" href="interfacestrange_1_1extensions_1_1pool_1_1api_1_1_i_poolable.html" title="Interface for items that belong to a Pool. ">IPoolable</a>, that's entirely allowable, but know that it will be your responsibility to clean up an instance BEFORE returning it to the Pool. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="afdea864987f51cfc9d83e9158dfcaa33"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void strange.extensions.pool.api.IPoolable.Release </td>
          <td>(</td>
          <td class="paramname">)</td><td></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Release this instance back to the pool. </p>
<p>Release methods should clean up the instance sufficiently to remove prior state. </p>

<p>Implemented in <a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#added3d6c62335be5ee0dd2e88c1b9f66">strange.extensions.pool.impl.Pool</a>, <a class="el" href="classstrange_1_1extensions_1_1command_1_1impl_1_1_command.html#a41896e346d95419f179c8af2ccb5696d">strange.extensions.command.impl.Command</a>, <a class="el" href="classstrange_1_1extensions_1_1dispatcher_1_1eventdispatcher_1_1impl_1_1_tm_event.html#a7a386063d3c752a4d586ecb5c4bd8f6d">strange.extensions.dispatcher.eventdispatcher.impl.TmEvent</a>, <a class="el" href="classstrange_1_1extensions_1_1sequencer_1_1impl_1_1_sequence_command.html#a3701cfea169824248179b71f4117c791">strange.extensions.sequencer.impl.SequenceCommand</a>, and <a class="el" href="classstrange_1_1extensions_1_1command_1_1impl_1_1_event_command.html#a9abf01833e08403f97f631615f1fcc42">strange.extensions.command.impl.EventCommand</a>.</p>

</div>
</div>
<a class="anchor" id="a3eb6437f37f1e87b92c55a32689a0ef5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void strange.extensions.pool.api.IPoolable.Restore </td>
          <td>(</td>
          <td class="paramname">)</td><td></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clean up this instance for reuse. </p>
<p>Restore methods should clean up the instance sufficiently to remove prior state. </p>

<p>Implemented in <a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#a5a936efde1ae47310598a1b54c68db44">strange.extensions.pool.impl.Pool</a>, <a class="el" href="classstrange_1_1extensions_1_1command_1_1impl_1_1_command.html#a150a8abf7136daecc1a991836feda470">strange.extensions.command.impl.Command</a>, and <a class="el" href="classstrange_1_1extensions_1_1dispatcher_1_1eventdispatcher_1_1impl_1_1_tm_event.html#aa20d15da3bdbddf1f29d923cdc58a1e6">strange.extensions.dispatcher.eventdispatcher.impl.TmEvent</a>.</p>

</div>
</div>
<a class="anchor" id="ad51f2499e20163c58147a886e5fd5692"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void strange.extensions.pool.api.IPoolable.Retain </td>
          <td>(</td>
          <td class="paramname">)</td><td></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Keep this instance from being returned to the pool </p>

<p>Implemented in <a class="el" href="classstrange_1_1extensions_1_1pool_1_1impl_1_1_pool.html#a31dd0baa23e31b9fe079783acdbbef4b">strange.extensions.pool.impl.Pool</a>, <a class="el" href="classstrange_1_1extensions_1_1command_1_1impl_1_1_command.html#ae1fd4be633a9619861930197b51ad6ea">strange.extensions.command.impl.Command</a>, <a class="el" href="classstrange_1_1extensions_1_1dispatcher_1_1eventdispatcher_1_1impl_1_1_tm_event.html#aacd0c47bb3adedb6e4934b7cbea6cab0">strange.extensions.dispatcher.eventdispatcher.impl.TmEvent</a>, and <a class="el" href="classstrange_1_1extensions_1_1command_1_1impl_1_1_event_command.html#a49705cc9260bd79ba51606523700330f">strange.extensions.command.impl.EventCommand</a>.</p>

</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a class="anchor" id="a5765129c59b95f61b7ffcd707e1296d2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool strange.extensions.pool.api.IPoolable.retain</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Is this instance retained? </p>
<p><code>true</code> if retained; otherwise, <code>false</code>.</p>

</div>
</div>
<hr/>The documentation for this interface was generated from the following file:<ul>
<li>StrangeIoC/scripts/strange/extensions/pool/api/IPoolable.cs</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jan 28 2014 13:07:05 for StrangeIoC by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.4
</small></address>
</body>
</html>
